﻿using Base.FileRemoteModel.UserFile.Model;
using Base.FileService.Model;
using WeDonekRpc.Modular;

namespace Base.FileService.Interface
{
    public interface IUserFileService
    {
        void SaveSort ( Dictionary<long, int> sort );
        void Drop ( long[] fileId );
        void Drop ( long fileId );
        void Drop ( string[] dirKey, long[] linkBizPk );
        void Drop ( string dirKey, long linkBizPk, string tag );
        void SaveFile ( long[] fileId, long linkBizPk, long[] dropId );
        void SaveFile ( long fileId, long linkBizPk, long[] dropId );
        DirUpConfig GetUploadConfig ( GetConfigArg arg );
        void Delete ( long fileId, IUserState state );
        UserFile GetUserFile ( long fileId );
        UserFileData[] GetFiles ( List<long> linkPk, string[] linkType, string[] tag );
        UserFile[] GetFiles ( long linkPk, string linkType, string tag );
        UserFile Copy ( CopyFileArg arg, IUserState state );
        UserFileStream GetStream ( long fileId );
        void Restore ( long[] fileId );
        void ToVoid ( long[] fileId );
        UserFileDatum[] GetFiles ( UserFileGetParam param );
        void Copy ( UserFileCopy[] files );
    }
}